<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<div>
			<!-- <h1>3.5Git</h1> -->
			git:
			<P>Rescan&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;刷新</P>
			<P>StageChanged&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;选中</P>
			<P>SignOff&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;添加书签</P>
			<P>Commit&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;创建托管版本</P>
			<P>Push&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;添加到远程仓库</P>
			<div>
				<h2>git(分散式管理)</h2>
				<h3>新建的远程仓库</h3>
				<p>&nbsp;&nbsp;&nbsp;&nbsp;直接上传，至少有一个托管版本</p>
				<h3>远程仓库有东西情况(版本，分支)</h3>
				<p>&nbsp;&nbsp;&nbsp;&nbsp;上传之前，确定是同一个项目，并且这个项目有所更改</p>
			</div>
			<!-- <h1>3.6过滤器</h1> -->
			<div>
				<h3>过滤filter</h3>
				<p>属性绑定，模板输出可以使用</p>
				<p>局部过滤器(只能在声明作用域使用)</p>
				<p>filters:{name(管道符传过来的数据，参数，.....)}</p>
				<p>全局过滤器(可以在任何作用域使用)</p>
				<p>vue.filter(name,(管道符传过来的数据，参数，...)=>{})</p>
				<p>重名情况下</p>
				<p>局部过滤器>全局过滤器</p>
				<p>| 管道符</p>
				<h3>vue动画</h3>
				<p>transition(内置组件)</p>
				<p>v-if</p>
				<p>v-show</p>
				<p>动态组件</p>
				<p>组件根节点,(路由切换)</p>
				<h3>enter 隐藏到显示</h3>
				<P>.动画名-enter 隐藏到显示的开始状态</P>
				<P>.动画名-enter-active 隐藏到显示进行时的状态</P>
				<P>.动画名-enter-to 隐藏到显示结束时的状态</P>
				<h3>leave 显示到隐藏</h3>
				<P>.动画名-leave 显示到隐藏开始时的状态</P>
				<P>.动画名-leave-active 显示到隐藏进行时的状态</P>
				<P>.动画名-leave-to 显示到隐藏结束时的状态</P>
			</div>
			<!-- <h1>3.7自定义指令</h1> -->
			<div>
				<h3>自定义指令(某个功能的封装)</h3>
				<p>directive</p>
				<h2>简单定义</h2>
				<h4>全局</h4>
				<p>vue.directive(name,(dom,交互参数,新的虚拟dom,老的虚拟dom)=>{})</p>
				<h4>局部</h4>
				<p>directives:{<br>
					name(dom,交互参数,新的虚拟dom,老的虚拟dom){}<br>
				}</p>
				<h4>生命周期->(只能执行一次)</h4>
				<p>bind只执行一次</p>
				<p>inserted当前元素已经渲染完成</p>
				<p>update视图发生改变</p>
				<p>componentUpdate子组件vnode发生改变触发</p>
				<p>unbind解除绑定</p>
				<h3>全局</h3>
				<p>vue.directive(name,{
					<p>bind只执行一次</p>
					<p>inserted当前元素已经渲染完成</p>
					<p>update视图发生改变</p>
					<p>componentUpdate子组件vnode发生改变触发</p>
					<p>unbind解除绑定</p>
				})</p>
				<h3>局部</h3>
				<p>directives:{name:{}}</p>
				<h3>简单定义 pk 生命周期</h3>
				<p>简单定义，比较方便，不利于去处理比较复杂的功能</p>
				<p>生命周期比较有条理性，逻辑感更强一点，更方便维护</p>
				<h3>vnode   虚拟dom</h3>
				<P>面向对象编程</P>
				<P>万物皆对象</P>
				<P>将一段程序进行封装，共其他对象调取，使用，并给出结果</P>
			</div>
			<!-- <h1>3.10组件</h1> -->
			<div>
				<h2>vue中，最重要的是渲染(80%)</h2>
				<p>$nextTick视图更新完成之后(可以检测到子级组件)，触发</p>
				<p>$destroy()销毁组件</p>
				<p>数据更新</p>
				<p>视图更新</p>
				<h2>组件component</h2>
				<p>只能有一个根对象</p>
				<h2>局部</h2>
				<p>
					components:{<br>
						name:{<br>
							template:''//模板<br>
						}<br>
					}<br>
				</p>
				<h2>全局</h2>
				<p>
					vue.component(name,{<br>
						template:''//模板<br>
					})<br>
				</p>
				<h2>输出</h2>
				<p>标签 name</p>
				<p>内置组件component is="name"</p>
				<h2>插槽slot划分区域</h2>
				<p>div slot="name" div</p>
				<p>slot name="" slot</p>
				<h2>传值</h2>
				<p>父级到子级</p>
				<p>props</p>
				<p>父级传入的值，需要return一下才可以操作</p>
				<p>单项数据流</p>
				<p>父级改变子级可以改变，子级改变父级不可以改变</p>
				<h2>一个组件要包含的部分</h2>
				<h5>结构html</h5>
				<h5>表现css</h5>
				<h5>行为js</h5>
			</div>
			<!-- <h1>3.11组件</h1> -->
			<div>
				<h3>ts(typescript)</h3>
				<p>type-》类型-》限制-》判断</p>
				<p>ts限制js类型</p>
				<p>vue、react都是基于typescript</p>
				<h3>props</h3>
				<p>vue.js开发模式-》没有压缩的源码-》有判断prop类型</p>
				<p>vue.min.js-》生产模式-》压缩过后的上线代码-》没有判断类型</p>
				<p>组件写在那个作用域，那么这个作用域就是当前组件的父级</p>
				<p>动态切换组件</p>
				<p>	
					keep-alive<br>
					component :is="type"/component<br>
					/keep-alive<br>
				</p>
				<p>keep-alive缓存组件</p>
				<p>activated激活</p>
				<p>deactivated停用</p>
				<h3>创建组件的步骤</h3>
				<p>1、声明组件</p>
				<p>2、创建辅助模板</p>
				<p>3、创建死的数据</p>
				<p>4、完成效果</p>
				<p>5、替换辅助模板</p>
				<p>6、接入活的数据</p>
				<h3>vue和jq共用使用</h3>
				<p>$问题不大</p>
				<p>jq操作的是dom</p>
				<p>需要vue,dom加载完成,在使用jq</p>
				<h3>封装组件的时候注意事项</h3>
				<p>封装组件的时候,尽量不要在组件中出现id名</p>
				<p>因为id名不能复用,违背了组件封装的初衷</p>
			</div>
			<div>
				<!-- <h1>3.12</h1> -->
				<P>函数的封装 把js某个常用的功能，进行封装复用</P>
				<P>组件封装，里面包含结构，功能，样式</P>
				<P>封装要注意灵活性(相同的操作进行封装，不同(数据)的进行传入)</P>
				<h2>传值</h2>
				<h5>父级到子级</h5>
				<p>props</p>
				<h5>子级到父级</h5>
				<P>1、子级调取父级函数，进行传参</P>
				<P>2、自定义事件 this.$emit</P>
				<h5>兄弟之间传值、、、、详情见3.13课件</h5>
				<p>第一步、var bus=new Vue()</p>
				<p>第二步、bus.$emit('name',data)</p>
				<p>第三步、bus.$on('name',(data)=>{...})</p>
				<p>思路：在外面创建一个独立空间，所有的组件都可以在这个空间里面，取值修改值</p>
				<!-- <h2>递归组件：详情3.13课件</h2> -->
				<h5>递归组件(必须是全局组件)</h5>
				<p>组件调取自身组件</p>
				<p>递归组件--》组件调取自身组件(加判断，否则你会陷入死循环)(递归函数)</p>
			</div>
			<!-- <div>
				<!-- <h1>3.13</h1> -->
				<h4>js不能处理超过16位的整数</h4>
				<h4>js本身就不严谨</h4>
				<h4>解决方法，吧整数写成字符串</h4>
				<h4>详细笔记： https://blog.csdn.net/qq_36660558/article/details/104828822</h4>
				<P>json.parse解析标准json字符串</P>
				<P>eval 让字符串可以像代码一样执行</P>
				<p>element-ui 环境开发下</p>
			</div> -->
			<div>
				<!-- <h1>3.16   vue路由</h1> -->
				<P>router</P>
				<P>渐进式框架</P>
				<P>需要引入：</P>
				<P>vue.js    vue-router.js</P>
				<h3>定义路由需要四步</h3>
				<P>1、路由组件</P>
				<P>2、配置router</P>
				<P>3、配置router实例</P>
				<P>4、放到vue实例</P>
				<p>跳转：router-link to</p>
				<p>视图输出：router-view</p>
				<p>路由内置对象：$route</p>
				<p>注意：在路由模板中不能直接输出$route对象，应该输出专一的一项数据，可以在路由之外输出整个对象</p>
				<h3>内置跳转和a跳转的区别</h3>
				<p>内置跳转--》代表当前激活的类名，需要渲染为a标签</p>
				<p>a标签--》没有代表激活的类型，但是不需要渲染</p>
				<h3>只要你有组件切换的部分，就可以使用组件缓存</h3>
				<h2>路由输出也可以使用vue动画transition</h2>
				<P>v-show</P>
				<P>v-if</P>
				<P>动态组件</P>
				<P>组件根节点router</P>
				<h2>嵌套路由</h2>
				<p>children:[](嵌套路由path,除了默认可以写，其它都不可以写/)</p>
				<p>alias:别名(在起一个路由名字)</p>
				<p>redirect:重定向(改变跳转)</p>
			</div>
			<div>
				<!-- <h1>3.17</h1> -->
				<h2>webpack</h2>
				<P>安装：cnpm i webpack webpack-cli webpack-dev-server -g</P>
				<P>是webpack的4.0版本，作用是打包</P>
				<h3>打包模式</h3>
				<P>webpack --mode=development   用于开发环境--》压缩出来较大</P>
				<p>webpack --mode=production    用于生产环境--》压缩出来较小</p>
			</div>
		</div>
	</body>
</html>
